Following the development of computers, it was realized that the ability to pass information between computers would enhance the functionality of the computers and the productivity of the users of such equipment. The interconnection of multiple computers, for example, permits programs on one computer to be executed by a user on another computer; permits data to be shared between users on different computers; and permits computationally intensive programs to be partitioned among several computers to increase the overall speed of the computation.
A group of interconnected computers, in which each computer is capable of communicating with the other interconnected computers, defines a network. Each computer device which is interfaced to the network is termed a network node. Data is exchanged between computers in an orderly and accurate manner by using a well defined set of rules and data structures termed a medium access control protocol. A medium access control protocol defines among other things the form that the data must have to be transferred across the network; how each node is addressed; and how each node will be given access to the communication channel.
Examples of two networks having differing medium access control protocols are the Ethernet carrier sense multiple access (CSMA) network and the optical Fiber Distributed Data Interface (FDDI). Both of these networks are packet data networks in which bytes of informational data to be transferred are encapsulated between bytes of network information data, such as source address, destination address and data word count. However, although both these networks transfer data in packets, the structure of the packets are different for both networks. Referring to FIGS. 1 and 1A, an Ethernet data packet 10 (FIG. 1) includes a header 12, data 14 and a trailer 16. The Ethernet header includes a preamble 18, which provides synchronization, the address of the node to which the data is destined 20, and the address from which the data originated 22. The Ethernet trailer 16 includes a cyclic redundancy check (CRC) word 24 to indicate whether the data has been corrupted in transmission. Although an FDDI data packet 40 (FIG. 1A) includes a header 42, data 44, and a trailer 46, the structure of the header 42 and the trailer 48 differs from that of the Ethernet packet 10.
Since different medium access control protocols are used by the various networks, networks using different medium access control protocols cannot directly communicate with one another without some form of translation equipment between the different networks. To permit computers, on two networks having different medium access control protocols, to communicate, a device, termed a bridge, is used. A bridge may also be used to connect networks using the same medium access control protocol in order to segment a network. An example of a bridge for permitting communication between networks having disparate medium access control protocols is shown in FIG. 2. A bridge 60 both interconnects two or more networks 62, 64 and performs necessary medium access control protocol conversions on the data packets passing between the networks 62, 64.
Because a bridge 60 interconnects at least two networks 62, 64, a bridge 60 should properly pass data between the networks 62, 64 only when a node, the destination node, (for example an FDDI node 70) destined to receive data is on another network (for example FDDI network 62) from the node, for example Ethernet node 72, (the source node) sending the data. If the source node 72 and destination node 76 are on the same network, for example Ethernet 64), the bridge 60 should not pass the data to the other network 62, since to do so increases unnecessarily the amount of data traffic on each network.
In the example shown in FIG. 2, an FDDI data packet network 62 interconnecting a series of computer nodes 70, 74 communicates with a series of computer nodes 72, 76 on an Ethernet data packet network 64 through a bridge 60. In such data packet networks, the bridge 60 determines whether the destination address located in the packet header indicates that the packet should be transferred between the two networks 62, 64 and if so provides the medium access control protocol conversion necessary for the Ethernet 64 and the FDDI network 62 to communicate.
Typically, the bridge 60 maintains a network table containing a list of known nodes 70, 72, 74, 76 and the corresponding network 62, 64 to which the nodes 70, 72, 74, 76 belong. When a data packet arrives at the bridge 60 from one network, for example the Ethernet 64, the bridge 60 compares the destination address 20 in the header 12 of the data packet 10 with the addresses in the network table. If the destination address 20 corresponds to the other network 62 to which the bridge 60 is attached and not the network 64 which originated the data message, the bridge 60 performs medium access control protocol conversion and passes the data across the bridge 60 to the other network 62.
If the data packet 10 contains a destination address 20 in its header 12 which is unknown to the bridge 60, that is, an address not listed in the network table, the bridge 60 generally provides for transmission of the data packet on to both of the connected networks 62, 64 to assure that the packet will arrive at the desired network. In this case, with reference to FIG. 2, when node 70 receives data and replies, for example, with an acknowledgement, the bridge 60 is able to determine the network 62, 64 to which the node 70 belongs. The bridge 60, then enters the node 70 in its network table along with the appropriate network identifying information. Until most of the nodes 70, 72, 74, 76 on each of the networks 62, 64 to which the bridge 60 is attached are included in the network table, each network 62, 64 is flooded with data packets which are not actually destined for it. FIGS. 2A and 2B depict exemplary flow diagrams used in conventional network bridges to determine how data packets are to be passed to a network on opposite sides of the bridge. FIG. 2A depicts the flow diagram used for a bridge that interconnects two networks. FIG. 2B depicts the flow diagram used in a bridge which connects more than two networks, that is, a multiport bridge. Referring to FIG. 2A, once a packet arrives at the bridge on the FDDI network 92 as illustrated in block 90, the bridge 60 determines 62 if the destination address matches any FDDI side entry in a network table. A network table is a list of all node addresses known by the bridge on a per network basis. If there is a match, the packet is destined for a node 70, 74 on the FDDI network 62 side and the bridge 60 does not receive it. A packet is received by copying the packet into bridge memory. If the destination address of the packet does not match any FDDI side entry in the table, the bridge 60 receives the packet and forwards it to the Ethernet network 64. Therefore, if the packet were destined for a node 70, 74 on the FDDI network 62 and the bridge 60 did not have the node listed in its network table, the packet would still be forwarded to the Ethernet network 64.
Referring to FIG. 2B, alternatively, upon the arrival of a FDDI packet 100, the destination address is examined 102 to determine if the address corresponds to any FDDI side entry in the table. If there is a match, the packet is destined for a node 70, 74 on the FDDI network 62 side and the bridge 60 does not receive it. If the destination address of the packet does not match any FDDI side entry in the table, the bridge 60 receives the packet. A determination is then made 106 to see if the destination address corresponds to any entry in the table. If the destination address does not correspond to a known node, the packet is forwarded 108 to all Ethernet ports. If a match is found, the bridge 60 forwards the packet to the Ethernet network corresponding to the matched entry. As a default case, if a destination node is unknown, the packet is forwarded. In the case of packets going from the Ethernet networks to the FDDI network, the bridge operates in the same manner as described above. That is, a bridge operates in a symmetrical manner.
A bridge typically ages entries out of its address tables if those addresses have been inactive for a predetermined amount of time. Generally this amount of time is on the order of several minutes. This permits space for new entries in the table.
It should be noted also that in the typical two port bridge 60, the multiple nodes 72, 76 on one network, for example the Ethernet 64, each share the bandwidth of that network 64 connected to the bridge 60. This results in each node 72, 76 being allocated significantly less than the total network bandwidth available. This results in decreased efficiency when the receiving network has a greater bandwidth than the transmitting network.
The present invention not only decreases the amount of network flooding, but also acts as a multiplexer which permits multiple networks such as Ethernet to be connected to a primary network or backbone network such as the FDDI.